import { ApiProperty } from '@nestjs/swagger'
import {
  IsBoolean,
  IsNotEmpty,
  IsNumber,
  IsOptional,
  IsString,
  Length,
  MaxLength
} from 'class-validator'
export class CreateMenuDto {
  @ApiProperty({ description: '菜单名称', example: '菜单1' })
  @IsString({ message: '菜单名称必须为字符串类型' })
  @IsNotEmpty({ message: '菜单名称不能为空' })
  @Length(2, 10, { message: '菜单名称长度为2-20个字符' })
  name: string
  @ApiProperty({ description: '菜单路径', example: '/menu' })
  @IsString({ message: '菜单路径必须为字符串类型' })
  @IsNotEmpty({ message: '菜单路径不能为空' })
  @Length(2, 60, { message: '菜单路径长度为2-60个字符' })
  path: string
  @ApiProperty({ description: '父级菜单id', example: 1 })
  @IsOptional()
  @IsNumber({}, { message: '父级菜单id必须为数字类型' })
  parentId?: number
  @ApiProperty({ description: '是否为父级菜单', example: true })
  @IsOptional()
  @IsBoolean({ message: '是否为父级菜单必须为布尔类型' })
  isFather?: boolean
  @ApiProperty({ description: '菜单描述', example: '这是一个菜单' })
  @IsOptional()
  @IsString({ message: '菜单描述必须为字符串类型' })
  @MaxLength(50, { message: '菜单描述长度不能超过50个字符' })
  desc?: string
}
